package cn.lds.health.dto;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * @ClassName ResultDTO
 * @Description TODO
 * @Author Christopher
 * @Date 2023/8/5 19:20
 * @Version 1.0
 **/
@Data
@AllArgsConstructor
public class ResultDTO <T>{
	
	private Integer code;
	private String msg;
	private T data;
	
	public Integer getCode() {
		return code;
	}
	
	public String getMsg() {
		return msg;
	}
	
	public T getData() {
		return data;
	}
	
	/**
	 * 返回成功方法，不封装数据
	 * @return
	 */
	public static ResultDTO buildSuccess(){
		return new ResultDTO(ResultEnum.SUCCESS.getCode(),ResultEnum.SUCCESS.getMsg(), null);
	}
	
	/**
	 * 返回成功方法，封装返回的数据
	 * @param data
	 * @return
	 */
	public static ResultDTO buildSuccess(Object data){
		return new ResultDTO(ResultEnum.SUCCESS.getCode(), ResultEnum.SUCCESS.getMsg(),data);
	}
	
	/**
	 * 返回成功方法，封装信息和返回数据
	 * @param data
	 * @param msg
	 * @return
	 */
	public static ResultDTO buildSuccess(Object data,String msg){
		return new ResultDTO(ResultEnum.SUCCESS.getCode(),msg,data);
	}
	
	/**
	 * 返回失败信息方法
	 * @return
	 */
	public static ResultDTO buildError(){
		return new ResultDTO(ResultEnum.ERROR.getCode(),ResultEnum.ERROR.getMsg(), null);
	}
	
	/**
	 * 返回失败信息方法，封装信息
	 * @param msg
	 * @return
	 */
	public static ResultDTO buildError(String msg){
		return new ResultDTO(ResultEnum.ERROR.getCode(),msg, null);
	}
	
	/**
	 * 返回失败信息方法，封装数据
	 * @param obj
	 * @return
	 */
	public static ResultDTO buildError(Object obj){
		return new ResultDTO(ResultEnum.ERROR.getCode(),ResultEnum.ERROR.getMsg(), obj);
	}
	
	
}